import pageMetaData from "./pageMetaData";
import {isNotEmpty} from "../../../js/commonUtils";

export const resetPageMetaInfo = () => {
  pageMetaData.pageMetaInfo.target = "";
  pageMetaData.pageMetaInfo.type = 0;
  pageMetaData.pageMetaInfo.title.isUnion = true;
  pageMetaData.pageMetaInfo.title.value = "";
  pageMetaData.pageMetaInfo.title.pcValue = "";
  pageMetaData.pageMetaInfo.title.mobileValue = "";
  pageMetaData.pageMetaInfo.description.isUnion = true;
  pageMetaData.pageMetaInfo.description.value = "";
  pageMetaData.pageMetaInfo.description.pcValue = "";
  pageMetaData.pageMetaInfo.description.mobileValue = "";
  pageMetaData.pageMetaInfo.keywords.isUnion = true;
  pageMetaData.pageMetaInfo.keywords.value = "";
  pageMetaData.pageMetaInfo.keywords.pcValue = "";
  pageMetaData.pageMetaInfo.keywords.mobileValue = "";
}

export const initPageMetaInfo = (target, type, pageMetaInfoList) => {
  //重置属性值
  resetPageMetaInfo();
  //初始化
  pageMetaData.pageMetaInfo.target = target;
  pageMetaData.pageMetaInfo.type = type;
  if(pageMetaInfoList==null || pageMetaInfoList.length==0) {
    return;
  }

  for(let terminal of pageMetaData.pageMetaDic.terminals) {
    let titlePageMeta = getPageMeta(pageMetaData.pageMetaDic.titleName, terminal.value, pageMetaInfoList);
    let descPageMeta = getPageMeta(pageMetaData.pageMetaDic.descriptionName, terminal.value, pageMetaInfoList);
    let keywordsPageMeta = getPageMeta(pageMetaData.pageMetaDic.keywordsName, terminal.value, pageMetaInfoList);
    switch (terminal.value) {
      case pageMetaData.pageMetaDic.unionTerminal:
        //title
        if(titlePageMeta) {
          pageMetaData.pageMetaInfo.title.isUnion = true;
          pageMetaData.pageMetaInfo.title.value = titlePageMeta.value;
        }
        //description
        if(descPageMeta) {
          pageMetaData.pageMetaInfo.description.isUnion = true;
          pageMetaData.pageMetaInfo.description.value = descPageMeta.value;
        }
        //keywords
        if(keywordsPageMeta) {
          pageMetaData.pageMetaInfo.keywords.isUnion = true;
          pageMetaData.pageMetaInfo.keywords.value = keywordsPageMeta.value;
        }
        break;
      case pageMetaData.pageMetaDic.pcTerminal:
        //title
        if(titlePageMeta) {
          pageMetaData.pageMetaInfo.title.isUnion = false;
          pageMetaData.pageMetaInfo.title.pcValue = titlePageMeta.value;
        }
        //description
        if(descPageMeta) {
          pageMetaData.pageMetaInfo.description.isUnion = false;
          pageMetaData.pageMetaInfo.description.pcValue = descPageMeta.value;
        }
        //keywords
        if(keywordsPageMeta) {
          pageMetaData.pageMetaInfo.keywords.isUnion = false;
          pageMetaData.pageMetaInfo.keywords.pcValue = keywordsPageMeta.value;
        }
        break;
      case pageMetaData.pageMetaDic.mobileTerminal:
        //title
        if(titlePageMeta) {
          pageMetaData.pageMetaInfo.title.isUnion = false;
          pageMetaData.pageMetaInfo.title.mobileValue = titlePageMeta.value;
        }
        //description
        if(descPageMeta) {
          pageMetaData.pageMetaInfo.description.isUnion = false;
          pageMetaData.pageMetaInfo.description.mobileValue = descPageMeta.value;
        }
        //keywords
        if(keywordsPageMeta) {
          pageMetaData.pageMetaInfo.keywords.isUnion = false;
          pageMetaData.pageMetaInfo.keywords.mobileValue = keywordsPageMeta.value;
        }
        break;
    }
  }
}

export const getPageMeta = (name, terminal, list) => {
  let item = list.find(item => item.name == name && item.terminal == terminal);
  return item;
}

export const getTitlePageMetaList = () => {
  let pageMetaInfos = [];
  //Title
  if(pageMetaData.pageMetaInfo.title.isUnion) {
    if(isNotEmpty(pageMetaData.pageMetaInfo.title.value)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.titleName,
        value: pageMetaData.pageMetaInfo.title.value,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.unionTerminal,
      });
    }
  }else{
    if(isNotEmpty(pageMetaData.pageMetaInfo.title.pcValue)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.titleName,
        value: pageMetaData.pageMetaInfo.title.pcValue,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.pcTerminal,
      });
    }
    if(isNotEmpty(pageMetaData.pageMetaInfo.title.mobileValue)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.titleName,
        value: pageMetaData.pageMetaInfo.title.mobileValue,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.mobileTerminal,
      });
    }
  }

  return pageMetaInfos;
}

export const getDescPageMetaList = () => {
  let pageMetaInfos = [];
  //Description
  if(pageMetaData.pageMetaInfo.description.isUnion) {
    if(isNotEmpty(pageMetaData.pageMetaInfo.description.value)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.descriptionName,
        value: pageMetaData.pageMetaInfo.description.value,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.unionTerminal,
      });
    }
  }else{
    if(isNotEmpty(pageMetaData.pageMetaInfo.description.pcValue)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.descriptionName,
        value: pageMetaData.pageMetaInfo.description.pcValue,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.pcTerminal,
      });
    }
    if(isNotEmpty(pageMetaData.pageMetaInfo.description.mobileValue)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.descriptionName,
        value: pageMetaData.pageMetaInfo.description.mobileValue,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.mobileTerminal,
      });
    }
  }
  return pageMetaInfos;
}

export const getKeywordsPageMetaList = () => {
  let pageMetaInfos = [];
  //Keywords
  if(pageMetaData.pageMetaInfo.keywords.isUnion) {
    if(isNotEmpty(pageMetaData.pageMetaInfo.keywords.value)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.keywordsName,
        value: pageMetaData.pageMetaInfo.keywords.value,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.unionTerminal,
      });
    }
  }else{
    if(isNotEmpty(pageMetaData.pageMetaInfo.keywords.pcValue)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.keywordsName,
        value: pageMetaData.pageMetaInfo.keywords.pcValue,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.pcTerminal,
      });
    }
    if(isNotEmpty(pageMetaData.pageMetaInfo.keywords.mobileValue)) {
      pageMetaInfos.push({
        name: pageMetaData.pageMetaDic.keywordsName,
        value: pageMetaData.pageMetaInfo.keywords.mobileValue,
        target: pageMetaData.pageMetaInfo.target,
        type: pageMetaData.pageMetaDic.showroomType,
        terminal: pageMetaData.pageMetaDic.mobileTerminal,
      });
    }
  }
  return pageMetaInfos;
}
